#!/bin/bash

# Mock 服务启动脚本
# 启动 Controller 和 NodeManager mock 服务

echo "=== Mock 服务启动脚本 ==="
echo "这个脚本将启动 Controller 和 NodeManager mock 服务"
echo

# 检查 Python 环境
if ! command -v python3 &> /dev/null; then
    echo "❌ Python3 未安装"
    exit 1
fi

# 检查必要的包
echo "检查依赖包..."
python3 -c "import requests, flask, fastapi, uvicorn" 2>/dev/null
if [ $? -ne 0 ]; then
    echo "❌ 缺少必要的 Python 包"
    echo "请运行: pip install requests flask fastapi uvicorn"
    exit 1
fi

echo "✅ 依赖检查通过"
echo

# 创建日志目录
mkdir -p logs

# 启动 NodeManager mock 服务器
echo "启动 NodeManager mock 服务器..."
python3 simple_start_receiver.py > logs/node_manager.log 2>&1 &
NODE_MANAGER_PID=$!
echo "NodeManager mock 服务器 PID: $NODE_MANAGER_PID"

# 等待 NodeManager 启动
sleep 3

# 检查 NodeManager 是否启动成功
if curl -s http://localhost:8080/ > /dev/null; then
    echo "✅ NodeManager mock 服务器启动成功 (端口 8080)"
else
    echo "❌ NodeManager mock 服务器启动失败"
    kill $NODE_MANAGER_PID 2>/dev/null
    exit 1
fi

echo
echo "=== 服务状态 ==="
echo "NodeManager mock 服务器: http://localhost:8080"
echo "  - 状态: http://localhost:8080/status"
echo "  - 命令: http://localhost:8080/commands"
echo

echo "=== 使用方法 ==="
echo "1. 确保 Controller 服务正在运行 (端口 8000)"
echo "2. 运行注册客户端:"
echo "   python3 simple_register_example.py"
echo "   python3 register_client_demo.py"
echo "3. 运行完整流程测试:"
echo "   python3 test_full_flow.py"
echo

echo "=== 停止服务 ==="
echo "按 Ctrl+C 停止所有服务"
echo

# 等待用户中断
trap 'echo "正在停止服务..."; kill $NODE_MANAGER_PID 2>/dev/null; echo "服务已停止"; exit 0' INT

# 保持脚本运行
while true; do
    sleep 1
done
